【测试】性能测试工具LoadRunner的基本使用流程 | 您所在的位置:网站首页 › loadrunner 参数设置 › 【测试】性能测试工具LoadRunner的基本使用流程 |
1.LoadRunner的基本概念
功能:LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间、吞吐量,并发用户和性能计数器等方面来衡量系统的性能表现,辅助用户进行系统性能的优化。 组成:LoadRunner主要包括三个前台功能组件,分别为VuGen(Virtual User Generator虚拟用户脚本生成器)、Controller(测试控制器)和Analysis(结果分析器)。系统会自动调用后台功能组件LG(负载生成器)和Proxy(用户代理)来完成性能测试工作。 三个组件: VuGen(Virtual User Generator):录制脚本,录制一个场景(在一个事务中),通过录制或编写脚本来模拟用户的行文;对用户名、密码参数化(使多个用户运行同一脚本,在本地修改用户名密码),到Controller;Controller:设置场景、监控运行场景,收集数据到Controller;Analysis:在测试完成后,对测试过程中收集到的各种性能数据进行计算、汇总和处理,生成各种图表和报告,为系统性能测试结果分析提供支持。 几个概念: Scenario:场景。所谓场景,是指在每一个测试过程中发生的事件。Vusers:虚拟用户。LoadRunner使用多线程或多进程来模拟用户对应用程序操作时产生的压力。一个场景可能包括多个虚拟用户,甚至成千上万个虚拟用户。Vuser Script:脚本。用脚本来描述Vuser在场景中执行的动作。Transactions:事务。事务代表了用户的某个业务过程,需要衡量这些业务过程的性能。rendezvous :集合。当我们测试多个用户并发时,每个用户执行到该事务脚本的先后顺序是不确定的,所以得到的测试结果也并不是一个完全 并发的极限测试结果。在开始事务之前 ,插入一个“集合点”,那么在多用户执行时,就可以将用户请求停下来,直到用户数量达到满足的条件(默认是100%的用户都到达集合点)。那么,所有的用户都将同时发出接下来的请求。 LoadRunner性能测试过程: 2.过程 指定性能测试计划 主要有以下内容:分析应用程序、确定测试目标、计划怎样执行 开发测试脚本LoadRunner 使用虚拟用户的活动来模拟真实用户来操作Web 应用程序,而虚拟用户的活动就包含在测试脚本中,所以说测试脚本对于测试来说是非常重要的。 开发测试脚本要使用 VuGen 组件。测试脚本要完成的内容有: 每一个虚拟用户的活动参数化定义事物定义检查点 设计运行场景运行场景描述在测试活动中发生的各种事件。一个运行场景包括一个运行虚拟用户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。 运行、监视测试一切配置妥当,开始运行测试。在运行过程中,需要监视各个服务器的运行情况(DataBase Server、Web Server等)。 分析测试结果所有前面的准备都是为了这一步。我们需要分析大量的图表,生成各种不同的报告,最后会得出结论。 LoadRunner用3个主要功能模块来覆盖性能测试的基本流程。(从上到下依次执行) Virtual User GeneratorControllerAnalysis其中Virtual User Generator使用在创建VU脚本阶段,Controller用在定义场景阶段和运 行场景阶段,Analysis用在分析结果阶段。 3.具体使用过程 准备选择StartServer.bat进行启动:
虚拟用户及密码的管理:
可以选择火狐浏览器或者IE: 脚本录制 新建脚本
创建脚本:因为要测试的是web项目,所以选择协议为Web-HTTP/HTML,点击创建后,进入主窗体(还可以在Single Protocol里面找)
在init中初始化,end中释放资源,在action中录制脚本 注意:在重复执行测试脚本时,vuser_init 和vuser_end 中的内容只会执行一次,重复执行的只是Action 中的部分。
脚本录制
最后结束录制 也可以在录制脚本中插入事务 法1.在点击插入事务处右击
2.法2
3.法3
注:对于事务要有始有终; 插入检查点在进行压力测试时,为了检查Web 服务器返回的网页是否正确,VuGen 允许我们插入Text 检查点,这些检查点验证网页上是否存在指定的Text,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。检查点的含义和unittest中的断言功能基本上一致。找页面里面的文本利用快照,做快照时一定要放到鼠标要点击做快照的代码处; 找快照:
文本检查:在想要检查的文本处右击 文本检查:
生成代码:此时应该确定页面加载好后在进行文本检查,加上"SaveCount=reservation_Count"
编译运行: 参数化 如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。 参数化输入是一种不错的方法。 用参数表示用户的脚本有两个优点: ① 可以使脚本的长度变短。 ② 可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。 参数化包含以下两项任务: ① 在脚本中用参数取代常量值。 ② 设置参数的属性以及数据源。 过程: 创建关联
出现关联:
把让jojo出现的地方都用参数替换: 进行修改替换:
此时脚本中所有的jojo用{username}替换掉了
添加虚拟用户: 首先确保虚拟用户在下面文件中存在,可以自行添加
选中username右击:
出现:
先查看username.dat里面的内容,发现只有一个用户
添加虚拟用户: 两种方法:这种方法比较麻烦,需要一次一次的添加
第二种:
最后查看文件,用户名已经添加进去了
这里要加上"NotFound=warning",否则运行会出错,因为长度有溢出
这样的话,还是不行的,知只是让一个用户去执行,只运行了一次,还需要更改运行时逻辑: 此处下面没有确定按钮,直接enter即可:
以日志形式输出: 先加上一句话:lr_output_message("username=%s",lr_eval_string("{username}")); 用log日志: 打印符号,让结果更加明显: 效果:后面几个是一样的,就是用户名是他自己的用户名 函数1.控制脚本流程 if { } else { } for{ } while{ } 2.字符串函数 strcmp 比较两个字符串 strcat 连接两个字符串 strcpy 拷贝字符串 注意:在VuGen 中,以char声明的字符串是只读的,如果试图给char类型的字符串赋值的话,编译会通过,但在运行时会产生“Access Violation”的错误。解决这类问题,就是把字符串声明为字符数组,比如char[100]。 3.输出函数 lr_output_message 输出一条消息 4.LoadRunner提供的标准函数 lr_eval_string 该函数功能是得到参数(参数化输入中)当前的值 exg: lr_output_message("temp = %s", lr_eval_string("{WCSParam2}")); lr_save_string 该函数功能是把一个字符串保存到参数中 操作:判断用户是否为jojo 结果: 场景创建在VuGen中,把之前的用户数改为1进行controller 因为电脑不太行,所以虚拟用户数只设置了3个人(同时做这个操作的人数有3个) 自动进入Controller 进行的是并发测试 一般用本台电脑上的loadrunner测服务器上的系统,进行配置: name为测得系统所在服务器的IP值platform:系统类型加完之后点击ok后,还要去检查能不能连接上,点击Connect 点击view script到达virtual user界面点击run-time Settings到达,和virtual use中的是一样的,也可以在这修改东西 场景的设置: 从上到下分别设置初始化虚拟用户、虚拟用户开始运行的方式、运行时间、停止运行方式
有多个组的时候选择group: 1.第一个场景:初始化 选择中间的,初始化一个用户需要多长时间 2.第二个场景:启动用户 3.第三个场景:持续运行的时间 (疲劳性测试或者稳定性测试要求持续的时间长))
4.第四个场景:退出 右边的图形曲线的走向和左边的设置是相关的 场景的运行 两种方法 方法1: 方法2:
四个窗口 到达集合点时,点击率最高 错误率=(错误用户数+失败的用户数)/所用的并发用户数 运行完之后会自动跳转到Analysis: 然后会生成报告
用户运行时间:在运行时和当初设置的不一样(因为系统复杂性) 点击率:每秒钟并发用户向服务器发送请求的个数 信息处理量: 事务的总结: (还有表和图,没有列完) 增加条目: 合并图:
|
CopyRight 2018-2019 实验室设备网 版权所有 |